Input/output system and methods to couple a storage device to the same server after movement in an input/output system

ABSTRACT

In an embodiment, a method of operating a zone manager of an input/out system includes, in response to a storage device being inserted into a particular storage-device location of the input/output system, determining whether the particular storage-device location and the storage device are assigned to a same server of the input/output system, and assigning the particular storage-device location and storage device to the same server in response to determining that the particular storage-device location and the storage device are not assigned to the same server.

BACKGROUND

Computers, such as personal computers, are often connected to datanetworks, such as the Internet, for accessing information stored on thedata network. Servers are sometimes connected to a data network toenable several computers to access the information that is stored withinthe network. The information accessed by a server (e.g., that may becalled an initiator) may be stored in a storage system that communicateswith the server.

For example, a server may exchange information with the storage systemusing a particular protocol that defines the rules for exchanginginformation between the server and the storage system. An example ofsuch a protocol is a SAS (Serial Attached SCSI (small computer serialinterface)) protocol. A server may include a controller, such as anarray controller, to couple the server to the storage system accordingto the particular protocol, such as the SAS protocol.

Some storage systems may include a storage array. A switch mayfacilitate communication between the server (the initiator) and thestorage array using the particular protocol, such as the SAS protocol.For example, the switch may be referred to as a network switch (e.g., aSAS switch for storage systems that communicate with a server using theSAS protocol).

A storage array may include a plurality of storage locations, such asslots, e.g., that may be called bays. Each slot may be configured toreceive a storage device (e.g., that may be called a target of theinitiator), such as a disc drive, a tape drive, etc. For example, eachslot may include a connector that connects, e.g., via hardwiring, astorage device to the switch. Some storage arrays may be contained inone or more storage enclosures.

Some storage systems may communicate with more than one server. Forexample, in response to user inputs, the switch may couple each serverto a portion, such as a group (e.g., sometimes called a zone group), ofthe storage locations of the storage array. This may be referred to aszoning. An example of where a user might create a zone group assigned toa server may involve a bladed server, where the user might create a zonegroup for each server blade.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an input/output system, according to anembodiment.

FIGS. 2A-2H are block diagrams of a storage array in different exampleconfigurations, according to another embodiment.

FIG. 3 is a flowchart of a method, according to another embodiment.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying drawings that form a part hereof, and in which is shown, byway of illustration, specific embodiments. In the drawings, likenumerals describe substantially similar components throughout theseveral views. Other embodiments may be utilized and structural,logical, and electrical changes may be made without departing from thescope of the present disclosure. The following detailed description is,therefore, not to be taken in a limiting sense.

FIG. 1 is a block diagram of an input/output (I/O) system 100 (e.g.,that may be called a domain or a fabric). For example, I/O system 100may be a SAS domain, e.g., a SAS fabric. Alternatively, I/O system 100may be referred to as a service delivery system, such as a servicedelivery subsystem for some embodiments. I/O system 100 may be coupledto a data network, such as the Internet, a local area network (LAN),and/or a wide area network (WAN).

I/O system 100 may include a plurality of servers 105, such as servers105 ₁ to 105 _(N). Servers 105 may be included in a bladed server, whereeach server 105 is a server blade located in an enclosure, such as ablade enclosure. Each server 105 may include a controller 108, such asan array controller.

Each controller 108 may provide one or more I/O ports 110 for itsrespective server 105. For some embodiments, each I/O port 110 mayinclude a transceiver (e.g., that may be called a phys) that isconfigured to selectively transmit and selectively receive signals. Forexample, the signals herein may include electrical signals, wirelesssignals, and the like.

I/O system 100 may include a switch 115, such as a network switch, e.g.,a SAS switch. Switch 115 may include an expander 120.

Expander 120, and thus switch 115, may be communicatively coupled tocontrollers 108, and thus servers 105. For example, communicativecouplings may refer to hardwired electrical couplings, wirelesscouplings, optical couplings, magnetic couplings, and the like.

Expander 120 may include I/O ports 130 corresponding to respective onesof the one or more I/O ports 110 of each controller 108. Each I/O port130 may include a transceiver (e.g., a phys) that is configured toselectively transmit and selectively receive signals.

Ports 130 may be communicatively coupled to respective ones of the oneor more I/O ports 110 of each controller 108 by respective ones of links134. For example, each link 134 in the example of FIG. 1 may include apair of wires. When I/O ports 110 and 130 include transceivers, a port110 may be configured to transmit a signal when a respective port 130 isconfigured to receive the transmitted signal and vice versa.

Expander 120 may include a plurality of I/O ports 140, such as I/O ports140 ₁ to 140 _(I), 140 _(I+1) to 140 _(I+J), and 140 _(I+J+1) to 140_(I+J+L). Each I/O port 140 may include a transceiver (e.g., a phys).

I/O system 100 may include an array 150 of storage-device locations 160,such as storage-device locations 160 ₁ to 160 _(I), 160 _(I+1) to 160_(I+J), and 160 _(I+J+1) to 160 _(I+J+L) respectively corresponding toI/O ports 140 ₁ to 140 _(I), 140 _(I+1) to 140 _(I+J), and 140 _(I+J+1)to 140 _(I+J+L). For example, storage-device locations 160 may be slotsfor some embodiments and may be referred to as bays.

Storage-device locations 160 ₁ to 160 _(I), 160 _(I+1) to 160 _(I+J),and 160 _(I+J+1) to 160 _(I+J+L) may be communicatively coupled torespective ones of I/O ports 140 ₁ to 140 _(I), 140 _(I+1) to 140_(I+J), and 140 _(I+J+1) to 140 _(I+J+L) by respective ones of links 165₁ to 165 _(I), 165 _(I+1) to 165 _(I+J), and 165 _(I+J+1) to 165_(I+J+L). Each of links 165 may include a pair of wires, for example.Expander 120 may be configured to selectively couple ports 140, and thusstorage-device locations 160, to ports 130, and thus to controllers 108of servers 105.

For some embodiments, storage array 150 may be contained (e.g., housed)in one or more enclosures 167, such as enclosures 167 ₁ to 167 _(M). Forexample, storage-device locations 160 ₁ to 160 _(I) may be contained inenclosure 167 ₁, storage-device locations 160 _(I+1) to 160 _(I+J) maybe contained in enclosure 167 ₂, and storage-device locations 160_(I+J+1) to 160 _(I+J+L) may be contained in enclosure 167 _(M). Therespective enclosures 167 may be physically separated from each other,e.g., located in different portions of a room or located in differentrooms.

A storage device 170, such as a disc drive, a tape drive, a SAS drive aSATA (serial advanced technology attachment) drive, etc., may be placed(e.g., inserted) in each of storage-device locations 160. Inserting astorage device 170 in a storage-device location 160 communicativelycouples that storage device 170 to a respective port 140 of expander 120through a respective link 165. For example, inserting a storage device170 into storage-device location 160 ₁ communicatively couples thatstorage device 170 to port 140 ₁ of expander 120 through link 165 ₁.

Each storage device 170 may include a transceiver (a phys). As such,inserting a storage device 170 into a storage-device location 160communicatively couples the transceiver of that storage device 170 to arespective transceiver of a port 140 of expander 120. For example,inserting a storage device 170 into storage-device location 160 ₁communicatively couples the transceiver of that storage device 170 tothe transceiver of port 140 ₁ of expander 120. The transceiver of a port140 may be configured to transmit a signal to the transceiver of arespective storage device 170 when the transceiver of the respectivestorage device 170 is configured to receive the transmitted signal andvice versa.

Switch 115 may transmit information between servers 105 and storagedevices 170. For example, for embodiments where switch 115 is a SASswitch, switch 115 may transmit information between servers 105 andstorage devices 170 using the SAS protocol.

I/O system 100 may include a controller, such as a zone manager 180. Forsome embodiments, zone manager 180 may be included in switch 115, asshown in FIG. 1. Zone manager 180 may include a processor 182 forprocessing processor-readable (e.g., computer-readable) instructions.These processor-readable instructions may be stored in a memory 184,such as a non-transitory computer-usable medium, and may be in the formof software, firmware, hardware, or a combination thereof. Theprocessor-readable instructions may configure memory 184 to allow zonemanager 180, and thus I/O system 100, to perform the various methodsdisclosed herein. In other words, zone manager 180 may be configured toperform the various methods disclosed herein.

In a hardware solution, the processor-readable instructions may be hardcoded as part of processor 182, e.g., an application-specific integratedcircuit (ASIC) chip. In a software or firmware solution, theinstructions may be stored for retrieval by the processor 182. Someadditional examples of non-transitory computer-usable media may includestatic or dynamic random access memory (SRAM or DRAM), read-only memory(ROM), electrically erasable programmable ROM (EEPROM or flash memory),magnetic media and optical media, whether permanent or removable. Someconsumer-oriented computer applications are software solutions providedto the user in the form of downloads, e.g., from the Internet, orremovable computer-usable non-transitory media, such as a compact discread-only memory (CD-ROM) or digital video disc (DVD).

Zone manager 180 may include a user interface 187, such as a graphicaluser interface (GUI), a command-line interface (CLI), etc. Userinterface 187 may be communicatively coupled (e.g., either directly orthrough a network, such as a LAN) to an I/O device, such as a computer188. In some embodiments, zone manager 180 may be integrated in computer188, e.g., as software.

In general, zone manager 180 may be configured to assign any one ofports 140 and the storage-device location 160 coupled to that port 140to any one of servers 105 ₁ to 105 _(N). For example, expander 120 mayselectively couple any one of ports 140 and the storage-device location160 coupled to that port 140 to any one of servers 105 ₁ to 105 _(N) inresponse to instructions from zone manager 180.

For some embodiments, the processor-readable instructions configurememory 184 to allow zone manager 180 to assign ports 140 to groups ofports, such as zone groups, where each group of ports 140 corresponds(e.g., is selectively coupled) to a server 105. For example, a zonegroup including ports 140 ₁ to 140 _(I) and port 140 _(I+J+1) may beassigned to server 105 ₁ and a zone group including ports 140 _(I+1) to140 _(I+J) and port 140 _(I+J+L) may be assigned to server 105 _(N). Forpurposes of the example in FIG. 1, the remaining ports between ports 140_(I+J+1) to 140 _(I+J+L) are not assigned to a zone group.

Each zone group may include the storage-device locations 160 coupled tothe ports 140 of the respective zone group. For example, the zone groupincluding ports 140 ₁ to 140 _(I) and port 140 _(I+J+1) may include thestorage-device locations 160 ₁ to 160 _(I) and storage-device location160 _(I+J+1) respectively coupled to ports 140 ₁ to 140 _(I) and port140 _(I+J+1) and the zone group including ports 140 _(I+1) to 140 _(I+J)and port 140 _(I+J+L) may include the storage-device locations 160_(I+1) to 160 _(I+J) and storage-device location 160 _(I+J+L)respectively coupled to ports 140 _(I+1) to 140 _(I+J) and port 140_(I+J+L). For purposes of the example of FIG. 1, the remainingstorage-device locations between storage-device location 160 _(I+J+1)and storage-device location 160 _(I+J+L), e.g., storage locations 160_(I+J+2) to 160 _(I+J+L−1), are not assigned to a zone group. Thestorage devices 170 inserted in the storage-device locations 160assigned to a certain zone group are assigned to that certain zonegroup.

The storage-device locations 160 ₃, 160 _(I+2), 160 _(I+J+2), and 160_(I+J+3) do not contain a storage device 170, and are thus empty. Notethat storage-device locations 160 ₃ and 160 _(I+2) are emptystorage-device locations belonging to zone groups respectively assignedto servers 105 ₁ and 105 _(N), whereas storage-device locations 160_(I+J+2) and 160 _(I+J+3) are empty locations that are not assigned toany zone groups.

The storage devices 170 in each zone group may be uniquely accessible tothe server 105 of that zone group, and, therefore, those storage devices170 may be assigned to that server 105. That is, the controller 108 of aserver 105 may be configured, e.g., by a user, to have access rights tothe storage devices 170 of a certain zone group. A server 105 of onezone group might not have access rights to the storage devices 170 ofanother zone group.

Each storage device 170 may include a unique identifier, such as theserial number of the respective storage device. For some embodiments,zone manager 180 is configured to assign storage devices 170, and aserver 105 with access rights to those storage devices, to the same zonegroup based on the identifiers of those storage devices 170. Forexample, zone manager 180 may include storage 190, such as a hard drive,removable flash memory, etc., that may store an updateable table (e.g.,a look-up table) 192 configured to map (assign) the identifier of eachstorage device 170 to a particular zone group and thus a particularserver. Table 192 may also map (assign) storage-device locations 160selectively coupled to a server 105 to a particular zone group.

In response to a storage device 170 being inserted in a particularlocation 160, a signal may be sent from storage array 150 to zonemanager 180. For example, this may be referred to as a broadcast event,e.g., triggered in response to the storage device 170 being insertedinto the particular storage-device location 160. For some embodiments,the signal may be sent to expander 120, e.g., over the link 165corresponding to the particular storage-device location 160, which mayin turn send the signal to zone manager 180.

Zone manager 180 may then retrieve the identifier of the storage device170 from the storage device 170 and the storage-device location 160 fromarray 150 in response to receiving the signal. For example, this may bereferred to as a discovery process performed by zone manager 180, wherethe discovery process may be triggered in response to receiving thesignal, e.g., in response to the broadcast event.

At this point, zone manager 180 may enter look-up table 192 with theretrieved identifier of the storage device and the retrievedstorage-device location and may take a particular action as described inthe examples below. For example, zone manager 180 may determine fromtable 192 whether the identifier of the storage device and thestorage-device location are assigned to the same zone group and thus thesame server. Note that when one or more operations are performed inresponse to an event, such as receiving a signal, without userintervention, the one or more operations may be taken as being performedautomatically for some embodiments.

In the following examples, N=2 so that there are servers 105 ₁ and 105₂, M=3 so that there are enclosures 167 ₁, 167 ₂, and 167 ₃, and I=J=L=4so that there are storage-device locations 160 ₁ to 160 ₄ in enclosure167 ₁, storage device locations 160 ₅ to 160 ₈ in enclosure 167 ₂, andstorage device locations 160 ₉ to 160 ₁₂ in enclosure 167 ₃. This isshown in the examples of FIGS. 2A-2H.

The example of FIG. 2A illustrates a configuration of storage array 150where storage-device locations 160 ₁, 160 ₂, and 160 ₄ respectivelycontain storage devices 170 with identifiers SN1, SN2, and SN4,storage-device locations 160 ₅, 160 ₇, and 160 ₈ respectively containstorage devices 170 with identifiers SN5, SN7, and SN8, storage-devicelocations 160 ₉ and 160 ₁₂ respectively contain storage devices 170 withidentifiers SN9 and SN12, and the remaining storage-device locations 160₃, 160 ₆, 160 ₁₀, and 160 ₁₁ are empty. Table 1 shows an example oftable 192, corresponding to the configuration of storage array 150 shownin the example of FIG. 2A.

TABLE 1 Zone Storage-Device Storage-Device Group Server LocationsIdentifiers ZG1 105₁ 160₁, 160₂, 160₃, SN1, SN2, SN4, 160_(4,) 160₉ SN9ZG2 105₂ 160₅, 160₆, 160₇, SN5, SN7, SN8, 160_(8,) 160₁₂ SN12

Server 105 ₁ has access rights to the storage devices 170 withidentifiers SN1, SN2, SN4, and SN9 so that server 105 ₁ and the storagedevices 170 with identifiers SN1, SN2, SN4, and SN9 are assigned to zonegroup ZG1 and thus server 105 ₁. The storage-device locations 160 ₁, 160₂, 160 ₄, and 160 ₉ that respectively contain storage devices 170 withidentifiers SN1, SN2, SN4, and SN9 are assigned to zone group ZG1 andthus server 105 ₁. Empty storage-device location 160 ₃ is also assignedto zone group ZG1 and thus server 105 ₁.

Server 105 ₂ has access rights to the storage devices 170 withidentifiers SN5, SN7, SN8, and SN12 so that server 105 ₂ and the storagedevices 170 with identifiers SN5, SN7, SN8, and SN12 are assigned tozone group ZG2 and thus server 105 ₂. The storage-device locations 160₅, 160 ₇, 160 ₈, and 160 ₁₂ that respectively contain storage devices170 with identifiers SN5, SN7, SN8, and SN12 are assigned to zone groupZG2 and thus server 105 ₂. Empty storage-device location 160 ₆ is alsoassigned to zone group ZG2 and thus server 105 ₂. Empty storage-devicelocations 160 ₁₀ and 160 ₁₁ are not assigned to any zone group orserver. Note that the storage device locations and storage devices thatare assigned to the same zone group are also assigned to the sameserver.

In view of the foregoing, a zone group is a group of storage devices 160assigned to a particular server 105 and a group of storage-devicelocations 160 assigned (e.g., selectively coupled) to the particularserver 105. The storage devices 170 assigned to a particular server 105are those storage devices 170 to which the particular server 105 hasaccess rights. The storage-device locations 160 and storage devices 170assigned to the same server 105 belong to the same zone group. Forexample, the identifiers and storage locations that are assigned to azone group are also assigned the server of that zone group, e.g., theidentifiers and storage locations that are assigned to zone group ZG1are assigned to server 105 ₁, and the identifiers and storage locationsthat are assigned to zone group ZG2 are assigned to server 105 ₂.

The processor-readable instructions may configure memory 184 of zonemanager 180 to allow zone manager 180 to track a storage device 170within storage array 150 by the identifier SN of that storage device170. For example, zone manager 180 may be configured to keep track ofwhether the identifier of a storage device 170 and the storage-devicelocation 160 into which the storage device 170 is inserted are assignedto the same zone group and thus the same server.

The processor-readable instructions may configure memory 184 of zonemanager 180 to allow zone manager 180 to make corrections when a storagedevice 170 with an identifier assigned to one zone group, and thus aparticular server 105, is placed (e.g., by mistake) in a storage-devicelocation 160 assigned to a different zone group, and thus a differentserver 105, thereby advantageously avoiding an error in the particularserver 105. In other words, zone manager 180 may be configured to assigna storage device 170 and a storage-device location 160 into which thestorage device 170 is inserted to the same zone group, and thus the sameserver 105, in response to determining that the storage device 170 and astorage-device location 160 into which the storage device 170 isinserted were assigned to different zone groups, and thus differentservers, during tracking.

Note that a server 105 may be configured to indicate an error in theevent it cannot access a storage device 170 that was previously assignedto that server 105, e.g., when that server 105 is powered up, due tothat storage device 170 being misplaced in a storage-device location 160assigned to a different server 105. By assigning a storage device 170and a storage-device location 160 into which the storage device 170 isinserted to the same server 105, in response to determining that thestorage device 170 and the storage-device location 160 into which thestorage device 170 is inserted were assigned to different servers duringtracking, the error is avoided.

For example, inserting a storage device 170 with an identifier assignedto one zone group, and thus one server 105, in a storage-device location160 assigned to a different zone group, and thus a different server 105,may be referred to as an illegal storage device (e.g. drive) movement.For some embodiments, zone manager 180 may be configured to provide anindication in interface 187 that an illegal storage device movement wasdetected and corrected, e.g., by assigning the identifier and thestorage-device location 160 to the same zone group, and thus the sameserver.

Zone manager 180 may send a signal to interface 187 indicative of thedetection of the illegal movement in response to determining that theidentifier of the storage device 170 and the storage-device location 160are assigned to different zone groups, and thus different servers. Zonemanager 180 may also send a signal to interface 187 indicative of thecorrection of the illegal movement in response to zone manager 180assigning the identifier and the storage-device location 160 to the samezone group and thus the same server.

By tracking a storage device 170 and correcting for illegal movement ofthat storage device 170, zone manager 180 may ensure that that storagedevice 170 is coupled to the same server 105 regardless of where inarray 150 that storage device 170 is moved and regardless of thestorage-device location 160 into which that storage device 170 isinserted. Therefore, zone manager 180 is advantageously configured tocause storage devices 170 to remain coupled to the same server aftermovement in I/O system 100.

An identifier and a storage-device location 160 into which the storagedevice 170 with that identifier is inserted may be assigned to differentzone groups, and thus different servers, when the identifier is notassigned to a server and the storage-device location 160 is assigned toa server, when the identifier is assigned to a server and thestorage-device location 160 is not assigned to a server, or when theidentifier is assigned to one server and the storage-device location 160is assigned to different server. A correction may include assigning theidentifier and the storage-device location 160 into which the storagedevice 170 with that identifier is inserted to the same zone group andthus the same server.

For one embodiment, the processor-readable instructions may configurememory 184 of zone manager 180 to allow zone manager 180, and thus I/Osystem 100, to perform a method 300, as illustrated by the flowchart inFIG. 3. In other words, zone manager 180 is configured to perform method300.

In block 310, in response to a storage device being inserted into aparticular storage-device location of I/O system 100, zone manager 180determines whether the particular storage-device location and thestorage device are assigned to a same server of I/O system 100. Forexample, this may be referred to as tracking the storage device. Inblock 320, zone manager 180 assigns the particular storage-devicelocation and the storage device to the same server in response todetermining that the particular storage-device location and the storagedevice are not assigned to the same server. For example, this may bereferred to as a correction.

In the example of FIG. 2B, the storage device 170 with identifier SN1 ismoved from storage-device location 160 ₁ of storage array 150 to theempty storage-device location 160 ₆, as indicated by arrow 205. Inresponse to the storage device 170 with identifier SN1 being inserted instorage-device location 160 ₆, a signal (e.g., referred to as abroadcast event) may be sent from storage array 150 to zone manager 180,e.g., over the link 165 corresponding storage-device location 160 ₆ andthrough expander 120. Zone manager 180 may then retrieve identifier SN1from the storage device 170 and the storage-device location 160 ₆ fromarray 150 (e.g., referred to as a discovery process) in response toreceiving the signal and may enter Table 1 with the retrieved identifierSN1 and the retrieved storage-device location 160 ₆.

Zone manager 180 may then determine the zone group and the servercorresponding to identifier SN1 (in this case zone group ZG1 and thusserver 105 ₁) in response to entering Table 1 with the retrievedidentifier SN1. Zone manager 180 may also determine the zone group andthe server corresponding to the storage-device location 160 ₆ (in thiscase zone group ZG2 and thus server 105 ₂) in response to entering Table1 with the retrieved storage-device location 160 ₆. In other words, zonemanager 180 may determine the server (e.g., server 105 ₁) to whichidentifier SN1 is assigned using the retrieved identifier SN1 and theserver (e.g., server 105 ₂) to which the storage-device location 160 ₆is assigned using the retrieved storage-device location. Zone manager180 may then compare the zone groups, and thus the servers, thusobtained to determine whether the zone group, and thus the server,corresponding to storage-device location 160 ₆ and the zone group, andthus the server, corresponding to identifier SN1 are the same ordifferent. For example, this may be referred to as automaticallytracking the storage device 170 with identifier SN1.

In the example of FIG. 2B, the comparison of the zone groups thusobtained reveals that storage-device location 160 ₆ and the identifierSN1 are assigned to different zone groups, i.e., respectively to zonegroups ZG2 and ZG1. For example, this may be referred to asautomatically detecting an illegal storage device movement. In otherwords, storage-device location 160 ₆ and the storage device 170 withidentifier SN1 are assigned to different servers, i.e., respectivelyservers 105 ₂ and 105 ₁. Therefore, zone manager 180 may assignstorage-device location 160 ₆ to the same zone group ZG1, and thusserver 105 ₁, as identifier SN1 so that the storage device 170 withidentifier SN1 remains coupled to server 105 ₁, thereby advantageouslyavoiding an error in server 105 ₁. For example, this may be referred toas an automatic correction to the illegal storage device movement.

If storage-device location 160 ₆ is not assigned to zone group ZG1, andthus server 105 ₁, but instead remains assigned to zone group ZG2, andthus server 105 ₂, the storage device 170 with identifier SN1 would becoupled to server 105 ₂. This would result in server 105 ₁ issuing anerror signal, in that server 105 ₁ would no longer be able to access thestorage device 170 with identifier SN1. As such, the correctionadvantageously avoids the error.

Note that a server 105 ₁ may be configured to indicate an error in theevent it cannot access the storage device 170 with identifier SN1, e.g.,when server 105 ₁ is powered up. Therefore, if the storage device 170with identifier SN1 is misplaced in storage-device location 160 ₆assigned to server 105 ₂, server 105 ₁ will not be able access themisplaced storage device 170 with identifier SN1 and will indicate anerror. By reassigning storage-device location 160 ₆ to server 105 ₁, theerror is avoided, in that server 105 ₁ will be able access the storagedevice 170 with identifier SN1, e.g., upon power up.

For some embodiments, an indication of the illegal storage devicemovement may be sent to interface 187 from zone manager 180. Forexample, zone manager 180 may send a signal to interface 187 that isindicative that the storage device 170 with identifier SN1 was insertedinto a storage-device location assigned to a different zone group, andthus a different server, than the identifier SN1.

An indication that the illegal storage device movement was corrected mayalso be sent to interface 187 from zone manager 180. For example, zonemanager 180 may send a signal to interface 187 that is indicative thatstorage-device location 160 ₆ was assigned to the same zone group, andthus the same server, as identifier SN1. For example, when a useraccesses interface 187 with computer 188, the indication of the illegalstorage device movement and the correction thereof may display.

For some embodiments, zone manager 180 may assign storage-devicelocation 160 ₆ to zone group ZG1, and thus to server 105 ₁, byinstructing expander 120 to couple the I/O port 140 coupled tostorage-device location 160 ₆ to server 105 ₁. For example, expander 120may switch the I/O port 140 coupled to storage-device location 160 ₆from being coupled to server 105 ₂ to be coupled to server 105 ₁.

In response to assigning storage-device location 160 ₆ to zone groupZG1, and thus to server 105 ₁, zone manager 180 may update the state ofTable 1, e.g., to produce Table 2, to correspond to the configuration ofstorage array 150 shown in the example of FIG. 2B. That is, zone manager180 may update Table 1 in response to storage-device location 160 ₆ andthe storage device 170 with the identifier SN1, and thus the identifierSN1, being assigned to the same zone group ZG1, and thus to the sameserver 105 ₁. For example, Table 2 shows an example of Table 192corresponding to the configuration of storage array 150 shown in FIG.2B.

TABLE 2 Zone Storage-Device Storage-Device Group Server LocationsIdentifiers ZG1 105₁

 160₆, 160₂, SN1, SN2, SN4, 160₃, 160_(4,) 160₉ SN9 ZG2 105₂ 160₅, 

 160₇, SN5, SN7, SN8, 160_(8,) 160₁₂ SN12

In the example of Table 2, zone manager 180 has deleted storage-devicelocation 160 ₁ from zone group ZG1, deleted storage-device location 160₆ from zone group ZG2, and added storage-device location 160 ₆ to zonegroup ZG1. In other words, zone manager 180 has moved storage-devicelocation 160 ₆ from zone group ZG2 to zone group ZG1. Note that thestorage device 170 with the identifier SN1 remains assigned to zonegroup ZG1.

The foregoing example, presented in conjunction with FIGS. 2B and 3 andTable 2, illustrates how the zone manager 180, and thus I/O system 100,handles the situation where a storage device 170 that is being trackedby its identifier, e.g., the identifier present in table 192 (e.g., inTable 1), is inserted into a storage-device location 160 that isassigned to a different zone group and thus a different server. Inparticular, the example illustrates how the zone manager 180 handles thesituation when a storage device that is being tracked by its identifieris removed from a storage-device location that is already assigned to azone group and is inserted into a storage-device location that isalready assigned to another zone group. Note that zone manager 180 mightnot act in response to the removal of the storage device from astorage-device location 160, but instead may act in response to thestorage device being inserted into another storage-device location 160.

The example of FIG. 2C, illustrates the configuration of storage array150 after the storage device 170 with identifier SN1 is removed fromstorage-device location 160 ₁ in FIG. 2A (corresponding to Table 1) andis replaced by an untracked, new storage device 170 with an identifierSNNEW that is not in Table 1. That is, the untracked, new storage device170 with an identifier SNNEW is inserted into a storage-device location160, e.g., storage-device location 160 ₁, that is assigned to a server,e.g., server 105 ₁. Zone manager 180 may not act in response to theremoval of the storage device 170 with identifier SN1, but instead mayact in response to the storage device 170 with the identifier SNNEWbeing inserted into the storage-device location 160 ₁ that is assignedto server 105 ₁.

Zone manager 180 may update the state of Table 1, e.g., to produce Table3, to correspond to the configuration of storage array 150 shown in theexample of FIG. 2C in response to the storage device 170 with theidentifier SNNEW being inserted in storage-device location 160 ₁. Forexample, Table 3 is an example of table 192 corresponding to theconfiguration of storage array 150 shown in FIG. 2C.

TABLE 3 Zone Storage-Device Storage-Device Group Server LocationsIdentifiers ZG1 105₁ 160₁, 160₂, 160₃,

 SN1 SNNEW, 160_(4,) 160₉ SN2, SN4, SN9 ZG2 105₂ 160₅, 160₆, 160₇, SN5,SN7, SN8, 160_(8,) 160₁₂ SN12

In response to the storage device 170 with the identifier SNNEW beinginserted in storage-device location 160 ₁, zone manager 180 may removethe identifier SN1 of the storage device 170 that is being replaced bythe storage device 170 with the identifier SNNEW from Table 1 (e.g., asindicated in Table 3) and may add the identifier SNNEW to the zone groupZG1 to which server 105 ₁ is assigned and that includes thestorage-device location 160 ₁ into which the storage device 170 with theidentifier SNNEW is inserted. For example, zone manager 180 may assignthe storage device 170 with the identifier SNNEW to server 105 ₁ and maystart tracking the storage device 170 with the identifier SNNEW. Thismay be indicated to interface 187 and thus to a user accessing interface187, e.g., with computer 188.

For example, in response to the storage device 170 with identifier SNNEWbeing inserted in storage-device location 160 ₁, a signal may be sentfrom storage array 150 to zone manager 180, e.g., via expander 120(e.g., a broadcast event). In response to receiving the signal, zonemanager 180 may retrieve (e.g., a discovery process) the identifierSNNEW from the storage device 170 and the storage-device location 160 ₁into which storage device 170 with identifier SNNEW is inserted fromarray 150.

Zone manager 180 may then enter Table 1 with the retrieved identifierSNNEW and the retrieved storage-device location 160 ₁. Zone manager 180may then retrieve the server 105 ₁ corresponding to storage-devicelocation 160 ₁ from Table 1 and may determine from Table 1 that thestorage device 170 with the identifier SNNEW is new and untracked, e.g.,due to the absence of the identifier SNNEW from Table 1.

In response to determining that identifier SNNEW is new and untrackedand that the storage device 170 with identifier SNNEW is instorage-device location 160 ₁ that belongs to the zone group ZG1 towhich server 105 ₁ is assigned, zone manager 180 may then assign thestorage device 170 with the identifier SNNEW to server 105 ₁ by addingthe storage device 170 with the identifier SNNEW to zone group ZG1 andmay start tracking the storage device 170 with the identifier SNNEW.Zone manager 180 may then update Table 1, in response to assigning thestorage device 170 with the identifier SNNEW to zone group ZG1 andserver 105 ₁, to produce Table 3 that reflects that the storage device170 with the identifier SNNEW is in zone group ZG1 and is assigned toserver 105 ₁.

The foregoing example presented in conjunction with FIG. 2C and Table 3,illustrates how the zone manager handles the situation when a new,untracked storage device 170 replaces a tracked storage device 170.

The example of FIG. 2D, illustrates the configuration of storage array150 after a new, untracked storage device 170 with an identifier SNNEWis inserted into an empty storage-device location 160 (e.g.,storage-device location 160 ₃) that did not previously contain a storagedevice and that is assigned to a zone group, e.g., zone group ZG1 andthus server 105 ₁.

Zone manager 180 may update the state of Table 1, e.g., to produce Table4, to correspond to the configuration of storage array 150 shown in theexample of FIG. 2D in response to the storage device 170 with theidentifier SNNEW being inserted in storage-device location 160 ₃. Forexample, Table 4 is an example of table 192 corresponding to theconfiguration of storage array 150 shown in FIG. 2D.

TABLE 4 Zone Storage-Device Storage-Device Group Server LocationsIdentifiers ZG1 105₁ 160₁, 160₂, 160₃, SN1 SN2, 160_(4,) 160₉ SNNEW,SN4, SN9 ZG2 105₂ 160₅, 160₆, 160₇, SN5, SN7, SN8, 160_(8,) 160₁₂ SN12

In response to the storage device 170 with the identifier SNNEW beinginserted in storage-device location 160 ₃, zone manager 180 may add theidentifier SNNEW to the zone group ZG1 that includes the storage-devicelocation 160 ₃ into which the storage device 170 with the identifierSNNEW is inserted. For example, zone manager 180 may assign the storagedevice 170 with the identifier SNNEW to zone group ZG1, and thus toserver 105 ₁, and may start tracking the storage device 170 with theidentifier SNNEW. This may be indicated to interface 187 and thus to auser accessing interface 187, e.g., with computer 188.

For example, in response to the storage device 170 with identifier SNNEWbeing inserted in storage-device location 160 ₃, a signal may be sentfrom storage array 150 to zone manager 180, e.g., via expander 120,(e.g., a broadcast event). In response to receiving the signal, zonemanager 180 may retrieve the identifier SNNEW from the storage device170 and retrieve the storage-device location 160 ₃ into which thestorage device 170 with identifier SNNEW is inserted from array 150(e.g., a discovery process).

Zone manager 180 may then enter Table 1 with the retrieved identifierSNNEW and the retrieved storage-device location 160 ₃. Zone manager 180may then retrieve the server 105 ₁ belonging the zone group ZG1 andcorresponding to storage-device location 160 ₃ from Table 1 and maydetermine from Table 1 that the storage device 170 with the identifierSNNEW is new and untracked, e.g., due to the absence of the identifierSNNEW from Table 1.

In response to determining that identifier SNNEW is new and untrackedand that the storage device 170 with identifier SNNEW is instorage-device location 160 ₃, which belongs to zone group ZG1, zonemanager 180 may assign the storage device 170 with identifier SNNEW tozone group ZG1, and thus server 105 ₁, by adding the storage device 170with the identifier SNNEW to zone group ZG1 and may start tracking thestorage device 170 with the identifier SNNEW. Zone manager 180 may thenupdate Table 1, in response to the storage device 170 with theidentifier SNNEW being assigned to zone group ZG1 and server 105 ₁, toproduce Table 4 that reflects that the storage device 170 with theidentifier SNNEW is added to zone group ZG1 and is thus assigned to zonegroup ZG1 and server 105 ₁.

The foregoing example presented in conjunction with FIG. 2D and Table 4illustrates how the zone manager handles the situation when a new,untracked storage device 170 is inserted into an empty storage-devicelocation 160 that did not previously contain a storage device and thatis assigned to a particular zone group, and thus a particular server.

The example of FIG. 2E, illustrates the configuration of storage array150 after a new, untracked storage device 170 with an identifier SNNEWis inserted into a storage-device location 160, e.g., storage-devicelocation 160 ₁₀, that is not assigned to a zone group and thus a server.For example, FIG. 2E, illustrates the configuration of storage array 150after a new, untracked storage device 170 with an identifier SNNEW isinserted into array 150 having the configuration of FIG. 2A,corresponding to Table 1. In response, to determining that the storagedevice 170 with identifier SNNEW is new and untracked and thatstorage-device location 160 ₁₀ does not belong to a zone group, zonemanager 180 may determine that storage-device location 160 ₁₀ is not tobe assigned to a zone group, and thus a server, and the storage device170 with identifier SNNEW is not to be tracked.

For example, in response to the storage device 170 with identifier SNNEWbeing inserted in storage-device location 160 ₁₀, a signal may be sentfrom storage array 150 to zone manager 180, e.g., via expander 120(e.g., a broadcast event). In response to receiving the signal, zonemanager 180 may retrieve the identifier SNNEW from the storage device170 and the storage-device location 160 ₁₀ into which the storage device170 with identifier SNNEW is inserted from array 150 (e.g., a discoveryprocess).

Zone manager 180 may then enter Table 1 with the retrieved identifierSNNEW and the retrieved storage-device location 160 ₁₀. Zone manager 180may then determine from Table 1 that storage-device location 160 ₁₀ doesnot belong to a zone group, and thus a server, due to the absence ofstorage-device location 160 ₁₀ from Table 1. Zone manager 180 mayfurther determine from Table 1 that the storage device 170 with theidentifier SNNEW is new and untracked due to the absence of theidentifier SNNEW from Table 1. In response to determining thatidentifier SNNEW is new and untracked and in response to determiningthat storage-device location 160 ₁₀ does not belong to a zone group, andthus is not assigned to a server, zone manager 180 may determine thatthe storage device 170 with the identifier SNNEW is not to be added to azone group or assigned to a server and is not to be tracked.

In the example of FIG. 2F, the storage device 170 with identifier SN1 ismoved from storage-device location 160 ₁ of storage array 150 (asconfigured in FIG. 2A, corresponding to Table 1) to the emptystorage-device location 160 ₁₀, as indicated by arrow 210, wherestorage-device location 160 ₁₀ is not assigned to a zone group and thusis not assigned to a server. In response to the storage device 170 withidentifier SN1 being inserted into storage-device location 160 ₁₀, zonemanager 180 may remove storage-device location 160 ₁ that previouslycontained the storage device 170 with identifier SN1 from zone groupZG1, e.g. so that storage-device location 160 ₁ is no longer assigned toserver 105 ₁, and may add storage-device location 160 ₁₀ that nowcontains the storage device 170 with identifier SN1 to zone group ZG1,e.g., so that storage-device location 160 ₁₀ is now assigned to server105 ₁. This may be indicated to interface 187 and thus to a useraccessing interface 187, e.g., with computer 188. Zone manager 180 mightnot act in response to the removal of the storage device 170 withidentifier SN1, but instead may act in response to the storage device170 with the identifier SN1 being inserted into the storage-devicelocation 160 ₁₀.

Zone manager 180 may update the state of Table 1, e.g., to produce Table5, to correspond to the configuration of storage array 150 shown in theexample of FIG. 2F in response to the storage device 170 with theidentifier SN1 being inserted in storage-device location 160 ₁₀. Forexample, zone manager 180 may delete storage-device location 160 ₁ fromzone group ZG1, e.g. so that storage-device location 160 ₁ is no longerassigned to server 105 ₁, and add storage-device location 160 ₁₀ to zonegroup ZG1, e.g., so that storage-device location 160 ₁₀ is now assignedto server 105 ₁, as shown in Table 5. Note that Table 5 is an example oftable 192 corresponding to the configuration of storage array 150 shownin FIG. 2F.

TABLE 5 Zone Storage-Device Storage-Device Group Server LocationsIdentifiers ZG1 105₁

 160₁₀, SN1, SN2, SN4, 160₂, 160₃, 160_(4,) SN9 160₉ ZG2 105₂ 160₅, 160₆160₇, SN5, SN7, SN8, 160_(8,) 160₁₂ SN12

For example, a signal may sent from storage array 150 to zone manager180, e.g., over the link 165 corresponding storage-device location 160₁₀ via expander 120, in response to the storage device 170 with theidentifier SN1 being inserted into the storage-device location 160 ₁₀(e.g., a broadcast event). In response to receiving the signal, zonemanager 180 may retrieve the identifier SN1 from the storage device 170with the identifier SN1 and may retrieve the storage-device location 160₁₀ into which the storage device 170 with the identifier SN1 is insertedfrom array 150 (e.g., a discovery process).

Zone manager 180 may then enter Table 1 with the retrieved identifierSN1 and the retrieved storage-device location 160 ₁₀. Zone manager 180may then determine from Table 1 that the identifier SN1 is assigned tozone group ZG1, and thus server 105 ₁, and that the storage-devicelocation 160 ₁₀ is not assigned to a zone group, and thus a server, dueto the absence of storage-device location 160 ₁₀ from Table 1.

Zone manager 180 may then assign storage-device location 160 ₁₀ to zonegroup ZG1, and thus server 105 ₁, in response to determining that theidentifier SN1 is assigned to zone group ZG1, and thus server 105 ₁, andthat the storage device 170 with the identifier SN1 is inserted intostorage-device location 160 ₁₀. Zone manager 180 may then update Table1, in response to assigning storage-device location 160 ₁₀ to zone groupZG1, and thus server 105 ₁, to produce Table 5 that reflects that thestorage-device location 160 ₁ has been removed from zone group ZG1 andthat storage-device location 160 ₁₀ has been added to zone group ZG1.

The foregoing example presented in conjunction with FIG. 2F and Table 5,illustrates how the zone manager handles the situation when a trackedstorage device 170 that is assigned to a zone group and to a server isinserted into a storage-device location 160 that is not assigned to azone group or a server.

In the example of FIG. 2G, the storage device 170 with identifier SN1 isswapped with the storage device 170 with identifier SN5, as indicated byarrow 220. That is, the storage device 170 with identifier SN1 and thestorage device 170 with identifier SN5 are respectively removed fromstorage-device location 160 ₁ and storage-device location 160 ₅ in FIG.2A. Note that FIG. 2A shows array 150 before the swap and Table 1corresponds to a state before the swap. The storage device 170 withidentifier SN1 is then inserted into storage-device location 160 ₅ andthe storage device 170 with identifier SN5 is then inserted intostorage-device location 160 ₁ in FIG. 2G.

Zone manager 180 might not act in response to the removal of the storagedevice 170 with identifier SN1 and the removal of the storage device 170with identifier SN5, but instead may act in response to the storagedevice 170 with the identifier SN1 being inserted into thestorage-device location 160 ₅ and the storage device 170 with theidentifier SN5 being inserted into the storage-device location 160 ₁.

Zone manager 180 may update the state of Table 1, e.g., to produce Table6, to correspond to the configuration of storage array 150 shown in theexample of FIG. 2G in response to the storage device 170 with theidentifier SN1 being inserted in storage-device location 160 ₅ and thestorage device 170 with the identifier SN5 being inserted instorage-device location 160 ₁. For example, zone manager 180 may deletestorage-device location 160 ₁ from zone group ZG1 so that storage-devicelocation 160 ₁ is no longer assigned to server 105 ₁ and may addstorage-device location 160 ₁ to zone group ZG2, e.g., the zone group towhich the storage device 170 with the identifier SN5 belongs, so thatstorage-device location 160 ₁ is assigned to server 105 ₂, as shown inTable 6.

Zone manager 180 may further delete storage-device location 160 ₅ fromzone group ZG2 so that storage-device location 160 ₅ is no longerassigned to server 105 ₂ and may add storage-device location 160 ₅ tozone group ZG1, e.g., the zone group to which the storage device 170with the identifier SN1 belongs, so that storage-device location 160 ₅is assigned to server 105 ₁. In other words, zone manager 180 swaps thezone groups, and thus the servers, for storage-device locations 160 ₁and 160 ₅. Note that Table 6 is an example of table 192 corresponding tothe configuration of storage array 150 shown in FIG. 2G.

TABLE 6 Zone Storage-Device Storage-Device Group Server LocationsIdentifiers ZG1 105₁

 160₅, 160₂, SN1, SN2, SN4, 160₃, 160_(4,) 160₉ SN9 ZG2 105₂

 160₁ 160₆, SN5, SN7, SN8, 160₇, 160_(8,) 160₁₂ SN12

In response to the storage device 170 with identifier SN1 being insertedin storage-device location 160 ₅, a signal may be sent from storagearray 150 to zone manager 180, e.g., via expander 120, (e.g., abroadcast event). In response to receiving the signal, zone manager 180may then retrieve identifier SN1 from the storage device 170 withidentifier SN1 and the storage-device location 160 ₅ from array 150(e.g., a discovery process). Zone manager 180 may then enter Table 1with the retrieved identifier SN1 and the storage-device location 160 ₅.

Zone manager 180 may then determine the zone group and the servercorresponding to identifier SN1 (in this case zone group ZG1 and thusserver 105 ₁) and the zone group and the server corresponding to thestorage-device location 160 ₅ (in this case zone group ZG2 and thusserver 105 ₂) from Table 1. Zone manager 180 may then compare the zonegroups, and thus the servers, thus obtained to determine whether thezone group, and thus the server, corresponding to storage-devicelocation 160 ₅ and the zone group, and thus the server, corresponding toidentifier SN1 are the same or different. For example, this may bereferred to as tracking the storage device 170 with identifier SN1. Thecomparison of the zone groups, and thus the servers, thus obtainedreveals that storage-device location 160 ₅ and identifier SN1 areassigned to different zone groups, and thus different servers, i.e.,respectively to zone groups ZG2 and ZG1 and thus servers 105 ₂ and 105₁. For example, this may be referred to as detecting an illegal movementof the storage device 170 with identifier SN1.

Therefore, zone manager 180 may assign storage-device location 160 ₅ tozone group ZG1, and thus server 105 ₁, in response to determining thatstorage-device location 160 ₅ and the identifier SN1 are assigned todifferent zone groups and servers. For example, this may be referred toas correcting the illegal movement of the storage device 170 withidentifier SN1. Zone manager 180 may send a signal to interface 187indicative of the detection of the illegal movement of the storagedevice 170 with identifier SN1 and the correction of the illegalmovement, e.g., indicative of the assignment of storage-device location160 ₅ to zone group ZG1 and thus server 105 ₁.

In response to the storage device 170 with identifier SN5 being insertedin storage-device location 160 ₁, a signal may be sent from storagearray 150 to zone manager 180, e.g., via expander 120, (e.g., abroadcast event). In response to receiving the signal, zone manager 180may then retrieve identifier SN5 from the storage device 170 withidentifier SN5 and the storage-device location 160 ₁ from array 150(e.g., a discovery process). Zone manager 180 may then enter Table 1with the retrieved identifier SN5 and the retrieved storage-devicelocation 160 ₁.

Zone manager 180 may then determine the zone group, and thus the server,corresponding to identifier SN5 (in this case zone group ZG2 and thusserver 105 ₂) and the zone group, and thus the server, corresponding tothe storage-device location 160 ₁ (in this case zone group ZG1 and thusserver 105 ₁) from Table 1. Zone manager 180 may then compare the zonegroups, and thus the servers, thus obtained to determine whether thezone group, and thus the server, corresponding to storage-devicelocation 160 ₁ and the zone group, and thus the server, corresponding toidentifier SN5 are the same or different. For example, this may bereferred to as tracking the storage device 170 with identifier SN5. Thecomparison of the zone groups, and thus the servers, thus obtainedreveals that storage-device location 160 ₁ and the identifier SN5 areassigned to different zone groups and thus different servers, i.e.,respectively to zone groups ZG1 and ZG2 and thus servers 105 ₁ and 105₂. For example, this may be referred to as detecting an illegal movementof the storage device 170 with identifier SN5.

Therefore, zone manager 180 may assign storage-device location 160 ₁ tozone group ZG2, and thus server 105 ₂, in response to determining thatthat storage-device location 160 ₁ and the identifier SN5 are assignedto different zone groups, and thus different servers. For example, thismay be referred to as correcting the illegal movement of the storagedevice 170 with identifier SN5. Zone manager 180 may send a signal tointerface 187 indicative of the detection of the illegal movement of thestorage device 170 with identifier SN5 and the correction of the illegalmovement, e.g., indicative of the assignment of storage-device location160 ₁ to zone group ZG2 and thus server 105 ₂.

For some embodiments, when a storage device 170 is moved to a storagelocation 160 that is assigned to the same zone group, and thus the sameserver, as the storage device 170, zone manager 180 may leave table 192unaltered, in that the storage device 170 remains in a zone groupincluding the server 105 that has access rights to the storage device170.

For example, in the example of FIG. 2H, the storage device 170 withidentifier SN1 is moved from storage-device location 160 ₁ of storagearray 150 (as configured in FIG. 2A, corresponding to Table 1) to thepreviously empty storage-device location 160 ₃, as indicated by arrow230, where storage-device location 160 ₃ is assigned to the same zonegroup ZG1, and thus the same server 105 ₁, as the storage device 170with identifier SN1.

For example, a signal may sent from storage array 150 to zone manager180, e.g., via expander 120, in response to the storage device 170 withthe identifier SN1 being inserted into the storage-device location 160 ₃(e.g., a broadcast event). In response to receiving the signal, zonemanager 180 may retrieve identifier SN1 from the storage device 170 andmay retrieve the storage-device location 160 ₃ into which the storagedevice 170 with the identifier SN1 is inserted from array 150 (e.g., adiscovery process).

Zone manager 180 may then enter Table 1 with the retrieved identifierSN1 and the retrieved storage-device location 160 ₃. Zone manager 180may then determine that identifier SN1 and the storage-device location160 ₃ are assigned to the same zone group ZG1, and thus the same server105 ₁, from Table 1. For example, this may be referred to as trackingthe storage device 170 with the identifier SN1. In this example, thetracking reveals no illegal movement of the storage device 170 with theidentifier SN1, in that the storage device 170 with the identifier SN1is moved to a storage-device location that is assigned to the same zonegroup, and thus the same server, as the identifier SN1. As such, nomodifications are made to Table 1.

For other embodiments, switch 115 (FIG. 1) may be integrated in array150. That is, array 150 may include expander 120 and zone manager 180.

For further embodiments, all the storage-device locations 160, and thusthe storage devices 170, of array 150 may be communicatively coupled toa single expander (not shown) in array 150 that is communicativelycoupled to expander 120 by links 165 and that is located between thestorage-device locations 160, and thus the storage devices 170, andexpander 120.

In some embodiments, each of enclosures 167 ₁ to 167 _(M) may include anexpander (not shown) between its storage-device locations 160, and thusits storage devices 170, and expander 120 for communicatively couplingthe respective storage-device locations 160 and storage devices 170 toexpander 120. For example, enclosure 167 ₁ may include an expandercommunicatively coupled to storage-device locations 160 ₁ to 160 _(I)and communicatively coupled to ports 140 ₁ to 140 _(I) of expander 120by links 165 ₁ to 165 _(I); enclosure 167 ₂ may include an expandercommunicatively coupled to storage-device locations 160 _(I+1) to 160_(I+J) and communicatively coupled to ports 140 _(I+1) to 140 _(I+J) ofexpander 120 by links 165 _(I+1) to 165 _(I+J); and enclosure 167 _(M)may include an expander communicatively coupled to storage-devicelocations 160 _(I+J+1) to 160 _(I+J+L) and communicatively coupled toports 140 _(I+J+1) to 140 _(I+J+L) of expander 120 by links 165 _(I+J+1)to 165 _(I+J+L).

For other embodiments, expander 120 may be omitted; each of enclosures167 ₁ to 167 _(M) may include an expander (not shown); and zone manager180 may be directly coupled to the expander of one of enclosures 167 ₁to 167 _(M). For example, the expander of enclosure 167 ₁ mayselectively couple storage-device locations 160 ₁ to 160 _(I) to servers105 ₁ to 105 _(N); the expander of enclosure 167 ₂ may selectivelycouple storage-device locations 160 _(I+1) to 160 _(I+J) to servers 105₁ to 105 _(N); and the expander of enclosure 167 _(M) may selectivelycouple storage-device locations 160 _(I+J+1) to 160 _(I+J+L) to servers105 ₁ to 105 _(N). The one expander directly coupled to zone manager 180would then be coupled to the remaining expanders of the remainingenclosures so that zone manager 180 could control (switch) the expanderdirectly coupled thereto and control (switch) the remaining expandersvia the expander directly coupled to zone manager 180.

Although specific embodiments have been illustrated and described hereinit is manifestly intended that the scope of the claimed subject matterbe limited only by the following claims and equivalents thereof.

1. A method of operating a zone manager of an input/output system,comprising: in response to a storage device being inserted into aparticular storage-device location of the input/output system,determining whether the particular storage-device location and thestorage device are assigned to a same server of the input/output system;and assigning the particular storage-device location and storage deviceto the same server in response to determining that the particularstorage-device location and the storage device are not assigned to thesame server.
 2. The method of claim 1, wherein determining that theparticular storage-device location and the storage device are notassigned to the same server comprises determining that the storagedevice is not assigned to any server of the input/output system anddetermining that the particular storage-device location is assigned to aserver of the input/output system.
 3. The method of claim 1, whereindetermining that the particular storage-device location and the storagedevice are not assigned to the same server comprises determining thatthe storage-device location is not assigned to any server of theinput/output system and determining that the storage device is assignedto a server of the input/output system.
 4. The method of claim 1,further comprising, in response to assigning the particularstorage-device location and storage device to the same server, updatingstorage of the zone manager to reflect that the particularstorage-device location and storage device are assigned to the sameserver.
 5. The method of claim 1, further comprising indicating to auser interface that the particular storage-device location and storagedevice have been assigned to the same server.
 6. The method of claim 1,wherein determining whether the particular storage-device location andthe storage device are assigned to the same server comprises: using atable to determine a server to which the storage-device location isassigned and to determine a server to which the storage device isassigned; and comparing the server to which the storage-device locationis assigned to the server to which the storage device is assigned.
 7. Amethod of operating a zone manager of a service delivery system,comprising: receiving a signal in response to a storage device beinginserted into a particular storage-device location of an array ofstorage-device locations; retrieving the storage-device location fromthe array of storage-device locations and an identifier of the storagedevice from the storage device in response to receiving the signal;using the identifier to determine a zone group to which the identifieris assigned; using the storage-device location to determine a zone groupto which the storage-device location is assigned; comparing the zonegroup to which the identifier is assigned to the zone group to which thestorage-device location is assigned; and if the zone group to which theidentifier is assigned does not match the zone group to which thestorage-device location is assigned, assigning the storage-devicelocation to the zone group to which the identifier is assigned.
 8. Themethod of claim 7, further comprising sending a signal to a userinterface indicative that the storage-device location has been assignedto the zone group to which the identifier is assigned.
 9. The method ofclaim 7, wherein using the identifier to determine the zone group towhich the identifier is assigned comprises determining the zone group towhich the identifier is assigned from a table in response entering thetable with the identifier, and wherein using the storage-device locationto determine the zone group to which the storage-device location isassigned comprises determining the zone group to which thestorage-device location is assigned from the table in response enteringthe table with the storage-device location.
 10. A service deliverysystem, comprising: a controller; wherein the controller is configuredto keep track of whether an identifier of a storage device and astorage-device location into which the storage device is inserted areassigned to a same server of a plurality of servers; and wherein thecontroller is configured to assign the identifier of the storage deviceand the storage-device location into which the storage device isinserted to the same server in response to determining that theidentifier of the storage device and the storage-device location are notassigned to the same server.
 11. The service delivery system of claim10, further comprising a look-up table that at least containsidentifiers of storage devices tabulated against servers of theplurality of servers.
 12. The service delivery system of claim 11,wherein the controller is configured to update the look-up table toreflect that the identifier of storage device and the storage-devicelocation into which the storage device is inserted are assigned to thesame server in response to determining that the identifier of thestorage device and the storage device location are not assigned to thesame server.
 13. The service delivery system of claim 10, furthercomprising a user interface coupled to the controller, wherein thecontroller is configured to indicate to the user interface, in responseto determining that the identifier of the storage device andstorage-device location are not assigned to the same server, thatillegal movement of the storage device has occurred, and wherein thecontroller is configured to indicate to the user interface, in responseto assigning the identifier of storage device and the storage-devicelocation into which the storage device is inserted to the same server,that the illegal movement of the storage device has been corrected. 14.The service delivery system of claim 10, further comprising an expandercoupled to the controller and configured to selectively couple storagedevice locations, including the storage-device location into which thestorage device is inserted, to the plurality of servers.
 15. The servicedelivery system of claim 10, wherein the controller is configured toretrieve the identifier of the storage device from the storage deviceand to retrieve the storage-device location from an array ofstorage-device locations, that comprises the storage-device locationinto which the storage device is inserted, in response to receiving asignal from the array of storage-device locations.